TOP

SQL CASE

SQL CASE 설명

CASE SQL 식은 조건을 살펴보고 첫 번째 조건이 충족되면 값을 반환합니다(예: if-then-else 문). 따라서 조건이 충족되자마자 명령은 읽기를 중단하고 결과를 반환합니다. 조건이 충족되지 않으면 ELSE 절의 값이 반환됩니다.

ELSE 부분이 없고 조건을 만족하지 않으면 NULL을 반환한다.


CASE 구문

SELECT column1, column2, ...
CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END

데모 데이터베이스

다음은 "Northwind" 데이터베이스의 "OrderDetails" 테이블에 있는 샘플입니다.

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

SQL CASE 예

다음 SQL 문은 조건을 확인하고 첫 번째 조건이 충족되면 값을 반환합니다.

Run SQLSELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails

이 SQL 쿼리는 고객을 도시(City)별로 정렬합니다. 그러나 도시가 NULL인 경우 국가별로 정렬합니다(Country).

Run SQLSELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END)